/*
 *
 * System中常用的API：
 *    public static long currentTimeMillis()   返回以毫秒为单位的当前时间。
 *    public static void	arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
 *        从指定源数组中复制一个数组，复制从指定的位置开始，到目标数组的指定位置结束。
 *
 *
 * */

import java.util.Arrays;

public class System01 {
    public static void main(String[] args) {
        demo01();
        demo02();
    }


    //public static long currentTimeMillis()   返回以毫秒为单位的当前时间。
    //可以用来测试程序执行的效率
    //例如：测试利用for循环计算打印1-9999的所需时间
    private static void demo01() {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 9999; i++) {
            System.out.println(i);
        }
        long over = System.currentTimeMillis();
        System.out.println("程序耗时为：" + (over - start));
    }

    /*
     * public static void	arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
     *        从指定源数组中复制一个数组，复制从指定的位置开始，到目标数组的指定位置结束。
     *
     *  参数：
     *  src - 源数组。
     *  srcPos - 源数组中的起始位置。
     *  dest - 目标数组。
     *  destPos - 目标数据中的起始位置。
     *  length - 要复制的数组元素的数量。
     * */
    //例：将src数组中的前三个元素，复制到dest数组的前三个位置上
    //复制前src 数组[1,2,3,4,5] dest数组[6,7,8,9,10];
    //复制后src 数组[1,2,3,4,5] dest数组[1,2,3,9,10];
    private static void demo02() {
        //创建数组
        int[] src = new int[]{1, 2, 3, 4, 5};
        int[] dest = new int[]{6, 7, 8, 9, 10};
        System.out.println("复制前" + Arrays.toString(dest));
        System.arraycopy(src, 0, dest, 0, 3);
        System.out.println("复制后" + Arrays.toString(dest));
        // for (int i = 0; i < dest.length; i++) {
        //     System.out.println(dest[i]);
        // }
    }
}
